Python:谷歌翻译20次的程序如何实现?

您所在的位置:网站首页 二十 翻译 Python:谷歌翻译20次的程序如何实现?

Python:谷歌翻译20次的程序如何实现?

2024-07-15 07:55| 来源: 网络整理| 查看: 265

Python:谷歌翻译20次的程序如何实现?

作者:橙汁

【梗的解释】

“ 谷歌翻译20次 ”就是多次利用谷歌翻译(Google Translate)将原本正常的名场面对话翻译成语言逻辑紊乱、特别搞笑的对话。

比如:这个视频,利用谷歌翻译将赛尔号“魔灵王之墓”的剧情制作成非常搞笑的对话。

【翻译实现】

除了使用人工手动往复翻译的方法,还可以使用编程语言进行翻译。比如,本文将展示如何使用Python实现这一过程。

① 下载并安装对应系统的Python3环境。

Python官网: https://www.python.org

② 安装googletrans模块

googletrans是调用谷歌翻译功能的Python模块。

打开控制台(Windows系统下按Win+R,输入“cmd”即可打开“命令提示符”),输入“ pip install googletrans ”并按下回车键,等待模块安装完成。

③ 书写代码,进行编程。

下面的代码,我只涉及到了“中文”和“英语”两种语言的循环翻译,没有涉及到其他的语言。如果你有其他方面的需求,可以在函数main()中修改参数txt、times和language,或者根据代码注释直接修改函数本身。

【程序代码】

# 导入模块函数库

from googletrans import Translator

import time

import random

# 初始化函数

def init():

    # 需要翻译的原文

    global txt

    # 需要翻译的次数

    global times

    # 需要翻译的语言

    global language

    # 加载翻译引擎

    global translator

    translator = Translator(service_urls = ['translate.google.cn'])

# 往返翻译一次的函数

def OneRound(s, src, dest):

    # 原语种翻译为外语种

    s = translator.translate(s, src = src, dest = dest).text

    # 设置延时,以免频率过高遭到服务器拒绝

    time.sleep(random.randint(50, 300) / 100)

    # 外语种翻译为原语种

    s = translator.translate(s, src = dest, dest = src).text

    return s

# 多次翻译的函数

def OverRound(s, times, src, dest):

    ss = []

    for i in range(times):

        # 进行一次翻译

        s = OneRound(s, src, dest)

        # 设置延时,以免频率过高遭到服务器拒绝

        time.sleep(random.randint(100, 500) / 100)

        # 储存中间翻译结果

        ss.append(s)

        # 输出中间翻译结果

        print('第' + str(i + 1) + '次:' + s)

        # 判断文本是否收敛,如果收敛则提前结束

        if i > 0 and ss[i - 1] == ss[i]:

            return s

        if i > 2 and ss[i - 2] == ss[i] and ss[i - 1] == ss[i - 3]:

            return s

    return s

# 程序主体函数

def main():

    init()

    for i in range(len(txt)):

        print('')

        # 输出原文

        print('原 文:' + txt[i])

        # 输出最终翻译结果

        print('【最终结果】\n' + OverRound(txt[i], times, language[0], language[1]))

        print('')

        # 设置延时,以免频率过高遭到服务器拒绝

        time.sleep(random.randint(5, 12))

#程序运行处

if __name__ == '__main__':

    txt = ['在混沌教派与大暗黑天将克里奥星域搅得天翻地覆的同时,让我们来看看遥远的泰坦星域中所发生的事…',

    '可恶的创世圣魂,居然给我耍这种小把戏!', 

    '但这绝对不可能一直困住我!', 

    '尽管已经损耗了大半的力量,但这个封印也即将冲破…', 

    '是你…来得正好,我忠实的仆从...', 

    '看来你也在外面帮我一同破除这该死的封印,现在快来帮我!', 

    '…我这就来帮你…', 

    '啊!!莱茵哈特!你居然! !', 

    '哼哼哼哼哼!哈哈哈哈哈!', 

    '为了破除这封印你已虚弱至此,真是天助我也!', 

    '你不是已经被逝者巨樽的力量所控制…', 

    '逝者巨樽?哦,你是说那个装亡者之力的小杯子啊…', 

    '说到这个我还要感谢你,让我感受并达到了一个全新的境界,但是…', 

    '但是什么?', 

    '但是现在…我觉得我还可以向着更高的次元突破,而契机就是…你的死!', 

    '你!啊! !!我的力量!!!快住手!!!', 

    '你费尽千辛万苦找来的这几样东西,对我来说还有用…', 

    '?!', 

    '你休想!他们是我的!是我的!', 

    '看来,要直接将这些神器剥离出来,还是要花费我一番功夫…', 

    '那就只好,委屈你暂时忍耐一下了,哈哈哈哈哈哈…。', 

    '不!!~~~~', 

    '逝者巨樽…亡者之力…', 

    '好东西…这简直让我欲罢不能啊…', 

    '哈哈哈哈,再来!', 

    '创世之钟…创世神力…', 

    '这股至高的光明之力…', 

    '若我可以将其与我的混沌所融合,那将是种怎样的境界…', 

    '我要迫不及待了!', 

    '不!!你不能这样!!', 

    '就是这样,让我再听听你的悲鸣?哈哈哈哈哈!', 

    '永恒之树的精华么…', 

    '哼,这玩意儿,暂时还用不到,但弃之也可惜,先留着吧!', 

    '求你快住手!我的身体,我的力量啊!!!', 

    '这就不行了?我们还要继续呢…哈哈哈哈!', 

    '泰坦的生命之力…', 

    '这和冥域的亡者之力倒也如阴阳两极一样,看来会用得着。', 

    '那是我的!是我的!你还给我!', 

    '你的?少让我发笑了!', 

    '这些不也是你从那些“无辜”的家伙那夺来的吗?我只不过是对你做了同样的事情,哈哈哈哈哈!', 

    '嚯…这就是你们暗夜一族的至高秘宝,灵核魔杖?', 

    '求求你..求求你..只有这个,你不能拿走,不然我会魂飞魄散的!', 

    '就是这个魔杖,帮助你统御了那些截然不同的能量吗? ', 

    '那我可更不能放过了,拿来吧!喝~~', 

    '啊!!! !', 

    '呵呵,一代霸主,临死前居然凄惨至斯,简直不堪入目…', 

    '好了,东西都到手了,我该找个地方需要好好参详一下,想一想该如何利用它们…', 

    '等我再次归来之时…我要让整个宇宙,陷入无尽的恐怖,哈哈哈哈哈哈哈!']

    times = 20

    # 具体语言标识请自行搜索“语言简写代码表”,如下是“中文(简体)”与“英语”。

    language = ['zh-CN', 'en']

    main()



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3